This description relates to managing transforms for compressing and decompressing visual data.
Compression of visual data is important because raw visual data such as images and video typically require a large number of bits for their representation. Compression allows for storage and transmission of visual data using a smaller number of bits. One aspect of compression relates to compressing the visual data itself using various techniques. Some compression is achieved by removing redundancy, for example, by generating prediction residuals representing a difference between a predicted frame and the actual frame. Various compression steps are also typically applied to results of transforms applied to portions of the visual data (e.g., a block of data from a video frame or from a prediction residual frame). The compression may include some lossy compression steps and some lossless compression steps. For example, lossy compression steps include quantization of transform coefficients, and lossless compression steps include Huffman coding and run-length coding of quantized coefficients. In some systems, another aspect of compression relates to compressing the side information that is sent along with the compressed visual data, such as information identifying which of multiple potential transforms were used to encode the visual data. For example, some systems use entropy coding to efficiently encode the bits representing the selected transform.